package models.cartas;

public class FabricaCarta {
	
	public static Carta getInstance(String carta) {
		
		String[] partes = carta.split(".");
		carta = partes[0];
		Cor cor;
		
		if (carta.toLowerCase().indexOf("coringa") > -1) {
			return new Coringa();
		} else if (carta.toLowerCase().indexOf("comprarquatro") > -1) {
			return new ComprarQuatro();
		} else if (carta.toLowerCase().indexOf("pular") > -1) {
			return new Pular(getCor(carta));
		} else if (carta.toLowerCase().indexOf("inverter") > -1) {
			return new Inverter(getCor(carta));
		} else if (carta.toLowerCase().indexOf("comprarduas") > -1) {
			return new ComprarDuas(getCor(carta));
		} else if (carta.toLowerCase().indexOf("cartanumerica") > -1) {
			return new CartaNumerica(getCor(carta), Integer.parseInt(carta.substring(carta.length()-1)));
		} else if (carta.toLowerCase().indexOf("pular") > -1) {
			return new Pular(getCor(carta));
		}
		
		return null;
	}
	
	
	private static Cor getCor(String carta) {
		
		if (carta.toLowerCase().indexOf("amare") > -1) {
			return Cor.AMARELO;
		} else if (carta.toLowerCase().indexOf("azul") > -1) {
			return Cor.AZUL;
		} else if (carta.toLowerCase().indexOf("verme") > -1) {
			return Cor.VERMELHO;
		} else if (carta.toLowerCase().indexOf("verde") > -1) {
			return Cor.VERDE;
		}
		
		return null;
		
	}
	
	

}
